﻿<?xml version="1.0" encoding="utf-8"?>

<!-- 
 ! Licensed under the Apache License, Version 2.0 (the "License");
 ! you may not use this file except in compliance with the License.
 ! You may obtain a copy of the License at
 ! 
 !     http://www.apache.org/licenses/LICENSE-2.0
 ! 
 ! Unless required by applicable law or agreed to in writing, software
 ! distributed under the License is distributed on an "AS IS" BASIS,
 ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ! See the License for the specific language governing permissions and
 ! limitations under the License.
-->
<xs:schema id="GenerateConfig"
    targetNamespace="http://xisd.at/GenerateConfig.xsd"
    elementFormDefault="qualified"
    xmlns="http://xisd.at/GenerateConfig.xsd"
    xmlns:mstns="http://xisd.at/GenerateConfig.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="XiSDGenerateConfig" type="GenerateConfig" />

  <xs:complexType name="GenerateConfig">
    <xs:sequence>
      <xs:element name="Schemas" type="Schemas" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="basePath" type="xs:string" use="optional" />
    <xs:attribute name="baseExtension" type="xs:string" use="optional" default="xsd" />
    <xs:attribute name="generatedExtension" type="xs:string" use="optional" default=".generated.cs" />
    <xs:attribute name="includeDataContractAttributes" type="xs:boolean" use="optional" default="false" />
  </xs:complexType>

  <xs:complexType name="Schemas">
    <xs:sequence>
      <xs:element name="Schema" type="Schema" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Schema">
    <xs:sequence>
      <xs:element name="SourcePath" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="TargetNamespace" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="TargetXmlNamespace" type="xs:string" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>
